Computer viruses, worms, malware and rootkits that aid in theft of identity and other personal information have become as pervasive and widespread as the modern computer itself. In many instances, they can infect or subvert protective measures in the user's operating system (OS). This intrusive software may also chain itself into the I/O handlers of the OS and quietly monitor I/O traffic without any apparent side effects to the user. This can potentially lead to leakage of users' personal information.
Modern computer systems typically run some variation of anti-virus or security software to thwart against the threat of personal information theft. These security software suits run either at the same privilege level as the OS or at a lower privilege level than the OS. If a virus or malware has already succeeded in infecting the OS and its applications, it can subvert security measures implemented at the same privilege level. Therefore, security software running at the same privilege level as the OS and other applications in the system may not provide adequate protection of the user's personal information.
Virtualization allows multiplexing of the underlying physical machine between different virtual machines, each running its own operating system. The software layer providing the virtualization is commonly referred to as a hypervisor and is also known as a virtual machine monitor (VMM) or a host. A hypervisor has control of hardware resources on the virtualization platform and is assigned a higher privilege level than that of the guest operating systems. As a result, a hypervisor is often used to improve security of the virtualization platform.
One conventional security mechanism uses a hypervisor to prevent leakage of user personal information via guest software. Such leakage can occur, for example, when a guest OS is infected or a guest browser has malicious components monitoring user input of personal information. The above security mechanism allows a user to refrain from entering personal information when interacting with the guest software, but rather enter personal information via a secure means provided by the hypervisor. However, this mechanism has proved to be inefficient because users often accidentally disclose their personal information to the guest software due to forgetfulness or carelessness.